/***********************************************************************************************************
 *** @Author         : jiabao
 *** @Description    :
 *** @Date           : 2024-07-18 12:29:00
 *** @FilePath       : /demo_cc/base/include/base_time.h
 ***********************************************************************************************************/
#ifndef __BASE_TIME_H__
#define __BASE_TIME_H__

#ifdef __cplusplus
extern "C"
{
#endif

#include "base_all.h"
#ifdef _WIN32
#include <windows.h>
#elif __linux__
#include <unistd.h>
#include <sys/time.h>
#endif
#include <time.h>

#define BASE_TIME_SAVE_MAX 64
    typedef enum
    {
        BASE_TIME_UNIT_US,
        BASE_TIME_UNIT_MS,
        BASE_TIME_UNIT_S,
        BASE_TIME_UNIT_MAX
    } base_e_time_unit;
    typedef struct
    {
#ifdef _WIN32
        double frequency; // 计时器频率
        LARGE_INTEGER timeSaveArr[BASE_TIME_SAVE_MAX];
#elif __linux__
    struct timeval timeSaveArr[BASE_TIME_SAVE_MAX];

#endif
    } base_st_time_save;

    s32 base_delayMs(u32 msVal);

    s32 base_delayS(u32 sVal);

    s32 base_delayUs(u32 usVal);

    s32 base_time_test();

#ifdef __cplusplus
}
#endif

#endif
